// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma

Mostbet kazinosuna giriş - onlayn kazino oynamaq üçün etibarlı platforma

Mostbet Kazinosuna Necə Qeydiyyatdan Keçmək Olar?

Mostbet Kazinosunda qeydiyyat prosesi başlanğıcda “Qeydiyyat” seçimini klikləməklə başlayır.
Əsas məlumatların daxil edilməsi üçün xüsusi qeydiyyat forması istifadəçiyə təqdim olunur.
Doldurulmuş məlumatların doğruluğunu təsdiqləndikdən sonra hesab aktivasiya olunur.
Son addımda depozit etmək və Mostbet-in geniş oyun seçimindən istifadə etmək mümkün olur.
Qeydiyyatdan keçmiş istifadəçilər bonus və promo kodlarından yararlana bilərlər.

Mostbet-də Depozit və Vəsait Çıxarılması Üsulları

Mostbet-də depozit qoymaq üçün bank kartları, elektron pul kisələri və mobil ödəniş sistemlərindən istifadə edə bilərsiniz. Vəsait çıxarmaq üçün proqramda təsdiq etdiyiniz eyni ödəniş üsulları əlçatandır. Əməliyyatlar adətən tez həyata keçirilir, lakin vaxt kart və ya sistem tərəfindən müəyyən edilə bilər. Minimal depozit və çıxarış məbləğləri seçilmiş üsula görə dəyişir. Bütün maliyyə əməliyyatları standart şifrələmə texnologiyaları ilə qorunur.

Mostbet Bonusları: Giriş Bonusu və Daimi Təkliflər

Mostbet Bonusları: Giriş Bonusu və Daimi Təkliflər platformanın yeni oyunçular üçün cəlbedici giriş paketini təqdim etdiyini bildirir. Mövcud müştərilər üçün daimi təkliflər arasında depozit bonusları, pulsuz fırlanmalar və keşbek imkanları mövcuddur. Hər bir bonusun öz şərtləri və mərc tələbləri olduğundan, təkliflərdən istifadə etməzdən əvvəl qaydaları diqqətlə oxumaq vacibdir. Bu təkliflər həm kazinoda, həm də idman mərclərində mərc etmək üçün əlavə dəyər təmin edir. Ətraflı məlumat və cari kampaniyalar üçün rəsmi Mostbet vebsaytını ziyarət etməyi tövsiyə edirik.

Mostbet Mobil Tətbiqi: Kazinoya Mobil Cihazlardan Giriş

Mostbet Mobil Tətbiqi ilə Azərbaycandan olan istifadəçilər kazino oyunlarına istənilən yerdən daxil ola bilərlər. Tətbiq smartfon və planşetlərdə rahat idarəetmə və sürətli performans təmin edir. Mobil versiya ilə canlı diler oyunları və yüzlərlə slot maşını tam funksionallıqla əlçatandır. Əmanətlərin qoyulması və vəsaitin çıxarılması üçün təhlükəsiz ödəniş üsulları mobil cihazlardan da mövcuddur. Mostbet Mobil Tətbiqi həm Android, həm də iOS platformaları üçün pulsuz yüklənə bilər.

Mostbet kazinosuna giriş - onlayn kazino oynamaq üçün etibarlı platforma

Mostbet-də Oyun Təminatçıları və Mövcud Oyunlar

Mostbet-də Oyun Təminatçıları və Mövcud Oyunlar geniş çeşiddə, məşhur provayderlər kimi NetEnt, Pragmatic Play və Evolution Gaming tərəfindən təqdim olunur. Platformada müxtəlif yuvalar, stolüstü oyunlar və canlı kazino bölməsi mobil cihazlarda və kompüterdə əlçatandır. Hər bir oyun təminatçısı öz unikal tematikaları və yüksək keyfiyyətli qrafikası ilə fəaliyyət göstərir, təhlükəsiz əyləncə təmin edir. Mərc oyunları həvəskarları üçün virtual idman növləri və kiberidman tədbirləri də geniş şəkildə təqdim olunur. Mostbet istifadəçiləri yeni çıxan oyunları daim izləyə və müxtəlif mərc variantlarından həzz ala bilərlər.

Mostbet Müştəri Dəstəyi və Təhlükəsizlik Tədbirləri

Mostbet Müştəri Dəstəyi komandası 7/24 fəaliyyət göstərir və sorğularınızı tez həll etmək üçün çoxsaylı əlaqə vasitələri təklif edir. Platforma qabaqcıl şifrələmə texnologiyalarından istifadə edərək maliyyə məlumatlarınızın və şəxsi məlumatlarınızın tam mühafizəsini təmin edir. Oyunçuların hesab təhlükəsizliyini artırmaq üçün ikiamalı autentifikasiya kimi əlavə tədbirlər mövcuddur. Bütün maliyyə əməliyyatları təhlükəsiz ödəniş keçidləri vasitəsilə aparılır və məxfilik siyasəti ciddi şəkildə qorunur. Mostbet həmçinin məsul oyunu təşviq edərək, istifadəçilərə öz fəaliyyətlərini idarə etmək üçün müxtəlif alətlər təqdim edir.

Adım: Rəşad. Yaşım: 34. Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma axtarırdım və nəhayət tapdım. Oyunların çeşidi inanılmazdır, canlı dilerlərə qoşulmaq asandır və ən əsası, uduşlarımı tez və problemsiz çıxara bilirəm. Texniki dəstək hər zaman aktivdir. Mənim üçün artıq ən sevimli onlayn kazinodur.

Adım: Aygün. Yaşım: 29. Mostbet saytını tez-tez istifadə edirəm və burada əyləncəli vaxt keçirə biləcəyinizi təsdiqləyə bilərəm. Əsasən slot oyunlarını oynayıram, bonuslar və fırlanmalar həqiqətən cəlbedicidir. Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma kimi mənə həmişə stabil işləyən mühitim təqdim edib. Depozit və çıxarışlar asandır, bu da inam yaradır.

Adım: İlqar. Yaşım: 41. Təcrübəm mənfi oldu. Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma deyil, ən azından mənim üçün. Bir neçə dəfə uduşumu çıxarmaq istəyəndə, hesabım qeyri-adi fəaliyyət səbəbi ilə bloklandı. Bütün sənədləri təqdim etdim, amma cavab çox yavaş gəldi və problem həll olunmadı. Oyun prosesi yaxşı olsa da, məndə inam hissi yoxdur.

Adım: Ləman. Yaşım: 26. Gözləntilərim qarşılanmadı. Platformanın işləməsi bəzən çox ləng olur, xüsusən axşam saatlarında. Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma olduğunu deyə bilmərəm, çünki oyun zamanı gözlənilməyən kəsilmələr baş verir. Bonus şərtləri də çox mürəkkəbdir və real uduş üçün praktiki olaraq yerinə yetirilməsi çətindir. Dəstək xidməti də kifayət qədər köməkçi deyil.

Azərbaycanda onlayn kazino mərc etmək istəyənlər üçün etibarlı platforma axtarırsınızsa, Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma açar sözü ilə düzgün mənbəyə yönəldilirsiniz.

Bu platforma oyunçulara rahat Mostbet kazinosuna giriş – https://mostbet-indir-az.org/ onlayn kazino oynamaq üçün etibarlı platforma təklif edərək, populyar slotlar və canlı diler oyunlarına çıxış təmin edir.

Müasir oyun seçimi və təhlükəsiz ödəniş üsulları ilə Mostbet kazinosuna giriş – onlayn kazino oynamaq üçün etibarlı platforma Azərbaycan oyunçularının etimadını qazanmışdır.

Design and Develop by Ovatheme